/************************************************************************/
/*    Author: Scott Bevin                                               */
/************************************************************************/

#pragma once

#include <sstream>
#include <string>
#include <map>
#include <vector>

#include <cassert>
#include <fstream>
#include <string>

#include "../XPropertys\PropertyContainer.h"

namespace XF
{
	class GameSettings : public PropertyContainer
	{
	private:
		std::string mFileName;
		static GameSettings* smInstance;

		void FileParserCallback(std::string key, std::vector<std::string> &arguments);

		GameSettings(){}
		~GameSettings();
	public:
		static void Initialise(std::string fileName);
		static void ShutDown();

		static GameSettings* Instance();

		static void SaveSettings();
	};

#ifndef XF_GAMESETTINGS
#define XF_GAMESETTINGS XF::GameSettings::Instance()
#endif
}